using RAG.Application.Commands;
using RAG.Application.Dtos;

namespace RAG.Application.Interfaces;

/// <summary>
/// 系统服务接口
/// </summary>
public interface IAppSystemService
{
    /// <summary>
    /// 获取系统统计信息
    /// </summary>
    Task<ApiResult> GetSystemStatisticsAsync();
    
    /// <summary>
    /// 获取系统分析报告
    /// </summary>
    Task<ApiResult> GetSystemAnalyticsAsync();
    
    /// <summary>
    /// 获取向量化处理状态
    /// </summary>
    Task<ApiResult> GetVectorizationStatusAsync();

    /// <summary>
    /// 获取仪表盘统计数据
    /// </summary>
    Task<ApiResult> GetDashboardStatisticsAsync();

    /// <summary>
    /// 获取系统健康状态
    /// </summary>
    Task<ApiResult> GetSystemHealthStatusAsync();

    /// <summary>
    /// 获取系统详细信息
    /// </summary>
    Task<ApiResult> GetSystemDetailedInfoAsync();

    /// <summary>
    /// 获取向量化详细状态
    /// </summary>
    Task<ApiResult> GetVectorizationDetailedStatusAsync();

    /// <summary>
    /// 获取系统分析报告（扩展版）
    /// </summary>
    Task<ApiResult> GetSystemAnalyticsExtendedAsync();
}
